Tornado学习笔记(二) 路由/post/get传参 |
您所在的位置:网站首页 › tornado url传参 › Tornado学习笔记(二) 路由/post/get传参 |
本章我们学习 Tornado 的路由传参等问题 路由 路由的匹配Tornado的路由匹配采用的是正则匹配 一般情况下不需要多复杂的正则,正则的基本规则如下(站长之家) 举个例子 (r'/sum/(\d+)', Sum),该代码指匹配 /sum/ 后跟至少一个数字且只有数字的情况 * 需要注意的是网络上传输都是字符串 类 Sum编写 class Sum(tornado.web.RequestHandler): # 数字类 def get(self, sum): # 获取数字并返回 self.write('%s,%s' % (type(sum), sum))我们访问 http://localhost:8001/sum/12 时 返回正常 我们访问 http://localhost:8001/sum/1a2 http://localhost:8001/sum/a12 http://localhost:8001/sum/12a http://localhost:8001/sum/a 时,均会报出404错误,证明没有匹配到路由
同理,当我们需要匹配两个参数时 (r'/(\w+)/stuggle/(\d+)', Stugggle),接收时接收两个参数即可 def get(self, st, ins): pass post参数与get一样,post请求会寻找到该视图的 post 方法 我们给视图 Hello 增加一个post class Hello(tornado.web.RequestHandler): # 封装一个类 def get(self): # get请求进入该方法 self.write('Hello') def post(self): # post请求 txt = self.get_argument('txt') self.write(txt)self.get_argument('txt') 指获取post传参中 Key 为 txt 的值,路由无需改动 get获取参数与上面的post没有差别 我们修改get方法来进行测试 def get(self): # get请求进入该方法 arg = self.get_argument('arg') arg1 = self.get_argument('arg1') self.write('%s+%s' % (arg,arg1))
但是需要注意的是, get_argument 在获取不到该key时会报错,抛出400错误 get_argument 方法其实可以接收三个参数 get_argument(name,default=_ARG_DEFAULT,strip=True)第一个参数就是key的值,第二个参数为如果接收不到默认的值,第三个是默认去除前后空格 一般情况下我们第二个参数传 None def get(self): # get请求进入该方法 arg = self.get_argument('arg', None) arg1 = self.get_argument('arg1', None) self.write('%s+%s' % (arg,arg1)) def post(self): # post请求 txt = self.get_argument('txt', None) self.write(txt)这样就增加了兼容性
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |